﻿/// <reference path="../jquery-1.4.2-vsdoc.js" />
/// <reference path="../Default.js" />
/// <reference path="../Extension.js" />

$(document).ready(function () {
    // Tabs
    $(".tabscontainer").tabs({
        remote: true,
        ajaxOptions: {
            error: function (xhr, status, index, anchor) {
                $(anchor.hash).html("Esta aba não pôde ser carregada. Tente novamente.");
            }
        },
        load: function () {
            ButtonTheme();
            loadInputs();

            $("#tableVolumes").jqGrid({
                datatype: 'json',
                url: '/PedidosVenda/VolumesList',
                mtype: 'GET',
                colNames: ['Index', 'Quantidade', 'Espécie', 'Marca', 'Numeração', 'Peso Líquido', 'Peso Bruto'],
                colModel: [
                    { name: 'ID_VOL', index: 'ID_VOL', width: 240, sortable: false, align: 'rigth', hidden: true },
                    { name: 'QTDE_VOL', index: 'QTDE_VOL', width: 100, sortable: false, align: 'rigth' },
                    { name: 'ESPECIE_VOL', index: 'ESPECIE_VOL', width: 200, sortable: false, align: 'left' },
                    { name: 'MARCA_VOL', index: 'MARCA_VOL', width: 200, sortable: false, align: 'left' },
                    { name: 'NUMERACAO_VOL', index: 'NUMERACAO_VOL', width: 100, sortable: false, align: 'rigth' },
                    { name: 'PESOLIQ_VOL', index: 'PESOLIQ_VOL', width: 100, sortable: false, align: 'rigth' },
                    { name: 'PESOBRT_VOL', index: 'PESOBRT_VOL', width: 100, sortable: false, align: 'rigth' }
                ],
                gridComplete: function () { loadInputs(); },
                rownumbers: true,
                pager: $('#pagerVolumes'),
                height: '100%',
                rowNum: 15,
                width: 834,
                rowList: [5, 10],
                sortname: 'Index',
                sortorder: 'asc'
            }).navGrid('#pagerVolumes', { edit: false, add: false, del: false, search: false, refresh: false });

            $("#tableLacres").jqGrid({
                datatype: 'json',
                url: '/PedidosVenda/LacresList',
                mtype: 'GET',
                colNames: ['Index', 'Número'],
                colModel: [
                    { name: "actions", formatter: "actions", editable: false, sortable: false, resizable: false, search: false, align: 'center', width: 28, "formatoptions": { keys: false, editbutton: false, delbutton: true} },
                    { name: 'ID_LACRE', index: 'ID_LACRE', width: 60, sortable: false, align: 'right', search: false, hidden: true },
                    { name: 'ID_VOL', index: 'ID_VOL', width: 60, sortable: false, align: 'right', search: false, hidden: true },
                    { name: 'NUMERO_LACRE', index: 'NUMERO_LACRE', width: 420, editable: true }
                ],
                gridComplete: function () { loadInputs(); },
                caption: 'Lacres',
                hidegrid: false,
                rownumbers: true,
                pager: $('#pagerLacres'),
                height: 'auto',
                rowNum: 15,
                rowList: [5, 10],
                sortname: 'Index',
                sortorder: 'asc',
                ondblClickRow: function (id) {
                    editRow('table', '/PedidosVenda/LacreUpdate', id);
                }
            }).navGrid('#pagerLacres', {
                edit: false, add: false, del: false, search: false, refresh: true
            }).navButtonAdd("#pager", {
                caption: '',
                buttonicon: 'ui-icon-circle-plus',
                onClickButton: function () {
                    $("#tableLacres").addRowData(0, {
                        ID_LACRE: '', NUMERO_LACRE: ''
                    }, 'first');
                    addRow('tableLacres', '/PedidosVenda/LacreUpdate', { ID_VOL: $('#ID_VOL').val() });
                },
                title: "adicionar natureza de operação",
                position: "last"
            });
        }
    });

    $(".tabsprodutos").tabs({
        disabled: [7, 8, 9, 10],
        spinner: '<em>Aguarde</em><img src="../../Content/Images/ajax-loader.gif" style="border: none; width: 12px; heigth: 12px; margin: 2px 0 -1px 4px" />',
        ajaxOptions: {
            error: function (xhr, status, index, anchor) {
                $(anchor.hash).html("Esta aba não pode ser carregada. Tente novamente.");

            }
        },
        load: function () {
            ButtonTheme();
            loadInputs();

            $('#PLACA_VEIC').setMask('aaa 9999');

            $('#TIPO_ITVD').change(function () {
                $('.tabsprodutos').tabs("select", 0).tabs("disable", 7).tabs("disable", 8).tabs("disable", 9).tabs("disable", 10);

                switch ($(this).val()) {
                    case "veic":
                        $('.tabsprodutos').tabs("enable", 7);
                        break;
                    case "med":
                        $('.tabsprodutos').tabs("enable", 8);
                        break;
                    case "arma":
                        $('.tabsprodutos').tabs("enable", 9);
                        break;
                    case "comb":
                        $('.tabsprodutos').tabs("enable", 10);
                        break;
                }
            });
        }
    });

    // Tabelas
    $("#table").jqGrid({
        datatype: 'json',
        url: '/PedidosVenda/ItensList',
        mtype: 'GET',
        colNames: ['Loja', 'Código', 'Descrição', 'Características', 'NCM', 'CFOP', 'Un.', 'Qtde.', 'Preço', 'Total', 'Base ICMS', 'Valor ICMS', 'Valor IPI', 'Alíq. ICMS', 'Alíq. IPI', ''],
        colModel: [
            { name: 'COD_LOJA', index: 'COD_LOJA', width: 240, sortable: false, align: 'rigth' },
            { name: 'COD_PROD', index: 'COD_PROD', width: 60, sortable: false, align: 'rigth' },
            { name: 'DESC_PROD', index: 'DESC_PROD', width: 240, sortable: false, align: 'left' },
            { name: 'NCM', index: 'NCM', width: 180, sortable: false, align: 'left' },
            { name: 'ID_NTOP', index: 'ID_NTOP', width: 60, sortable: false, align: 'center' },
            { name: 'DESC_UNID', index: 'DESC_UNID', width: 50, sortable: false, align: 'center' },
            { name: 'QTDE_ITPV', index: 'QTDE_ITPV', width: 80, sortable: false, align: 'right' },
            { name: 'PRECO_PROD', index: 'PRECO_PROD', width: 80, sortable: false, align: 'right' },
            { name: 'TOTAL_', index: 'TOTAL_', width: 80, sortable: false, align: 'right' },
            { name: 'BASEICMS', index: 'BASEICMS', width: 80, sortable: false, align: 'right' },
            { name: 'VALORICMS', index: 'VALORICMS', width: 80, sortable: false, align: 'right' },
            { name: 'VALORIPI', index: 'VALORIPI', width: 80, sortable: false, align: 'right' },
            { name: 'ALIQICMS', index: 'ALIQICMS', width: 60, sortable: false, align: 'right' },
            { name: 'ALIQIPI', index: 'ALIQIPI', width: 60, sortable: false, align: 'right' },
            { name: 'ACT', index: 'ACT', width: 40, sortable: false, align: 'center' }
        ],
        gridComplete: function () { loadInputs(); },
        rownumbers: true,
        pager: $('#pager'),
        height: '100%',
        width: 870,
        rowNum: 15,
        rowList: [5, 10, 15, 30, 45],
        sortname: 'COD_LOJA',
        sortorder: 'asc',
        shrinkToFit: false
    }).navGrid('#pager', { edit: false, add: false, del: false, search: false, refresh: true });

    // Botões de ação
    $('.disabled').button('disable');

    $('#retirada').change(function () {
        if ($(this).is(':checked'))
            setEndereco('A');
        else {
            progressDialog(true);
            $.getJSON('/NFe/RemoveEndereco', { type: 'A', ID_ENPS: $('#ENPS_RET').val() }, function () {
                progressDialog(false);
            });
            $('#ENPS_RET').val('');
        }
    });

    $('#entrega').change(function () {
        if ($(this).is(':checked'))
            setEndereco('B');
        else {
            progressDialog(true);
            $.getJSON('/NFe/RemoveEndereco', { type: 'B', ID_ENPS: $('#ENPS_ENTR').val() }, function () {
                progressDialog(false);
            });
            $('#ENPS_ENTR').val('');
        }
    });

    $('#cUF').change(function () {
        $('#cMunFG option').not(':first').remove();
        if ($('#cUF').val() != '') {
            progressDialog(true);
            $.getJSON('/Enderecos/CidadeSearch', { CODIBGE_UF: $('#cUF').val() }, function (data) {
                if (data != '') {
                    $.each(data, function (index, row) {
                        $("<option>").val(row.CODIBGE_CID).text(row.NOME_CID).appendTo('#cMunFG');
                    });
                }
                progressDialog(false);
            });
        }
    });
});

function Gravar() {
    progressDialog(true);
    $.getJSON('/PedidosVenda/Gravar', $('form').serialize(), function (data) {
        progressDialog(false);
        if (data != true)
            listErros(data);
    });
}

function Validar() {

}

function setEndereco(type) {
    var obj;

    if (type == 'A') {
        obj = {
            titulo: 'retirada',
            ID_ENPS: $('#ENPS_RET').val() != '' ? $('#ENPS_RET').val() : null,
            ID_PESSOA: $('#COD_LOJA').val(),
            type: 4,
            desc: 'ENPS_RET'
        }
    }

    else {
        obj = {
            titulo: 'entrega',
            ID_ENPS: $('#ENPS_ENTR').val() != '' ? $('#ENPS_ENTR').val() : null,
            ID_PESSOA: $('#COD_CLI').val(),
            type: 5,
            desc: 'ENPS_ENTR'
        }
    }

    jqGridEdit(
        'Editar endereço de ' + obj.titulo,
        null,
        '__enderecoedit',
        '/Enderecos/Edit',
        '/Enderecos/Update',
        obj.ID_ENPS,
        880,
        'EnderecoEditForm',
        function () {
            $('#CEP_END').setMask({ mask: '99999-999', autoTab: false });
            $('#ID_UF').change(function () {
                CidadeSearch($(this).val());
            });
            $('#ID_CID').change(function () {
                BairroSearch($(this).val());
            });
            $('#LOGR_END').autocomplete({
                source: function (request, response) {
                    $.ajax({
                        url: '/Enderecos/LookupList',
                        datatype: "json",
                        data: {
                            term: request.term,
                            ID_FNPR: 8572,
                            ID_UF: $('#ID_UF').val(),
                            ID_CID: $('#ID_CID').val(),
                            ID_BAIRRO: $('#ID_BAIRRO').val()
                        },
                        success: function (data) {
                            response($.map(data, function (item) {
                                return {
                                    id: item.id,
                                    label: item.label,
                                    value: item.value,
                                    ID_END: item.ID_END,
                                    ID_LOGRAD: item.ID_LOGRAD,
                                    ID_BAIRRO: item.ID_BAIRRO
                                }
                            }))
                        }
                    })
                },
                minLength: 4,
                select: function (event, ui) {
                    $('#CEP_END').val(ui.item.id);
                    $('#ID_END').val(ui.item.ID_END);
                    $('#ID_LOGRAD').val(ui.item.ID_LOGRAD);
                    $('#ID_BAIRRO').val(ui.item.ID_BAIRRO);
                }
            });
        },
        null,
        null,
        null,
        '&type=' + obj.type + '&ID_PESSOA=' + obj.ID_PESSOA,
        obj.desc
    );
}